package dominio.DAO;

import java.util.ArrayList;
import java.util.List;

import dominio.TipoCuenta;

public class TipoCuentaDAO {
	
	private BaseDatosMock bdMock;

    public void setBaseDatosMock(BaseDatosMock bdMock) {
        this.bdMock = bdMock;
    }
    
    public void crearTipoCuenta(TipoCuenta tipoCuenta) {
        bdMock.devolverTiposCuenta().add(tipoCuenta);
    }
    
	public TipoCuenta obtenerDatosCuenta(int codigo){
		TipoCuenta tipoCuenta = null;
		for(int i = 0; i < devolverCantidadTiposCuenta(); i++){
			TipoCuenta tipo = devolverTiposCuenta().get(i);            
			if(tipo.getCodigo() == codigo){
				tipoCuenta = tipo;
			}
		}
		return tipoCuenta;
	}
    
	public ArrayList<TipoCuenta> mostrarCuentasDisponibles(int codigo){
		ArrayList<TipoCuenta> disponibles = new ArrayList<TipoCuenta>();
		for(int i = 0; i < devolverCantidadTiposCuenta(); i++){     
			TipoCuenta tipo = devolverTiposCuenta().get(i);            
			if(tipo.getCodigo() != codigo){
				disponibles.add(tipo);
			}
		}
		return disponibles;
	}
    
	public String realizarPago(int codigo){
		StringBuffer tipoCuenta = new StringBuffer();
		for(int i = 0; i < devolverCantidadTiposCuenta(); i++){        
			TipoCuenta tipo = devolverTiposCuenta().get(i);            
			if(tipo.getCodigo() == codigo){
				tipoCuenta.append("El monto a pagar es : $" + tipo.getPrecio());
			}
		}
		return tipoCuenta.toString();
	}
    
	public int devolverCantidadTiposCuenta(){
        return devolverTiposCuenta().size();
    }
    
    public List<TipoCuenta> devolverTiposCuenta() {
        return bdMock.devolverTiposCuenta();
    }
}